\chapter{Introdução}

Segundo \cite{Slama2004}, empresas dependem fortemente de suas estruturas de
tecnologia da informação, que sao as responsáveis pelo execução de todos os
processos dentro das empresas modernas, sejam elas relacionadas a manufatura,
distribuição, vendas, ou qualquer outro tipo de processo de negócio. Com a
economia global altamente competitiva de hoje, esses processos demandam mudanças
continuamene: Empresas devem constatemente perceber alterações nas condições do
mercado e rapidamente adaptar suas estratégias para refletir essas mudancas.
Sob esse contexto, é um requisito chave para os departamentos de tecnologia da
informação das empresas modernas que as mudanças na estrategia da organização
sejam refletidas de forma rápida e eficiente nos sistemas da companhia, que
formam a coluna dorsal para a execução de suas estratégias.

Para atingir esse tipo de requisito a escolha de uma arquitetura de software
adequada ocupa um lugar de destaque na construção de sistemas. Como visto em
\cite{Garlan2000}, a arquitetura de software desempenha um importante papel em
pelo menos seis aspectos do desenvolvimento de software: 

\begin{enumerate}
  \item Compreensão - A arquitetura facilita a compreensão de grandes sistemas
  apresentando-os num nível de abstração no qual um design de alto nível pode
  ser facilmente compreendido.
  \item Reuso - Oferece suporte ao reuso em multiplos níveis.
  \item Construção - Uma descrição arquitetural fornece um esquema inicial para
  o desenvolvimento indicando os principais componentes e as dependências entre
  eles.
  \item Evolução - Uma arquitetura de software pode expor as dimensões através
  das quais é esperado que um sistema evolua.
  \item Análise - Descrições arquiteturais fornecem novas oportunidades para
  analise.
  \item Gerenciamento - (Traduzir essa parte)
\end{enumerate}

Essa importancia 